baf15411ca9eda7664ed4fbe73bea36b34b79ec4,plugins/org.eclipse.xtext.ui.common/src/org/eclipse/xtext/ui/common/editor/codecompletion/AbstractProposalProvider.java,AbstractProposalProvider,doSortAndFilter,#List#EObject#String#IDocument#number#,232

Before Change



						AbstractElement abstractElement = xtextCompletionProposal.getAbstractElement();

						EObject grammarElement = currentLeafNode.getGrammarElement();
						// at the end of the last element we want to filter only the CompletionProposal for the same grammar element
						if (((isCursorAtTheEndOfTheLastElement && abstractElement.equals(grammarElement)) || !isCursorAtTheEndOfTheLastElement)
								&& !completionProposal.getDisplayString().startsWith(currentLeafNode.getText())) {

After Change



						AbstractNode lastCompleteNode = ParseTreeUtil.getLastCompleteNodeByOffset(rootNode, offset);

						LeafNode currentLeafNode = ParseTreeUtil.getCurrentNodeByOffset(rootNode, offset);

						EObject grammarElement =  GrammarUtil.containingAssignment(currentLeafNode.getGrammarElement());
						
						if (null==grammarElement) {
							grammarElement = currentLeafNode.getGrammarElement();
						}

						boolean atTheEndOfTheLastCompleteNode = currentLeafNode == lastCompleteNode;